Since the advent of Graphical User Interfaces (GUIs) in interactive computing systems, a great deal of effort has gone into the ergonomics of the GUI. That is, developments in GUI technology have pursued the goal of making the GUI more convenient and easier to operate, and also more intuitive for the user.
In a GUI, various images, including icons, windows containing application programs, etc., appear on a display screen. The icons and windows are graphical representations of application programs or utility functions. The user operates the system by moving images on the screen, and by providing input signals to the system, which the system interprets as commands to operate the application programs or utility functions. Commonly, the image which the user moves about the screen is a cursor, although the user can also move other types of images around. Persons skilled in the use of GUIs will readily recognize that the cursor must be precisely positioned on the desired icon, application program button, etc., for the input signals to be interpreted as desired.
To move the cursor on the screen, the user employs a user interface apparatus which includes a transducer for translating the user's activity, such as hand movements, fingertip pressure, etc., into an input parameter. Various types of devices include such transducers. Much of the discussion which follows will focus on (i) the type of input parameter provided by a given user interface device, and (ii) the particular relationship, or "mapping," between the input parameter and the cursor movement.
A popular device for enabling the user to perform cursor movements and to enter commands is called a mouse. A mouse is a mechanically simple device for producing a signal, responsive to physical displacement of the mouse by the user, which directs the system to move the cursor about the display screen. Generally, a mouse also includes one or more push buttons, which the user pushes in order to enter commands to the system. Responsive to a given movement of the mouse in a given direction, such as over a mouse pad or work surface, the cursor makes a movement in a corresponding direction on the display screen. In the case of a mouse, the input parameter can be a positional movement, i.e. a displacement or translation, or can also include factors relating to mouse velocity, as well as displacement. Thus, the mapping is from a mouse position (or velocity) to a cursor position.
A joystick may also be used for cursor movement. A typical joystick, such as that used in video games, is spring-biased in two dimensions to a middle position, corresponding with no cursor movement. Movement of the joystick responsive to user manipulation causes cursor movement. For such joysticks, displacement of the joystick, or a magnitude of force applied against it, serve as the input parameter. In general, the input parameter of a joystick is position, i.e., displacement from a resting position, and the mapping is from joystick position to cursor velocity (or, in some systems, cursor position).
Yet another type of user input device is generically called an isometric joystick. An isometric joystick is implemented as the TrackPoint II pointing device, currently available in the ThinkPad line of laptop computers by IBM Corporation. (TrackPoint II, ThinkPad, and IBM are registered trademarks of International Business Machines Corporation.) ThinkPad laptop computers include TrackPoint II pointing devices, conveniently built into the middle of the keyboard, between the G and H keys. ThinkPad units also include keyboard buttons, analogous to mouse buttons, for entering system commands.
A user operates a TrackPoint If device by pushing laterally against the top of the device with his/her fingertip. The device does not actually displace, as in the case with a joystick. The input parameter is the force applied by the user, and the force is mapped to cursor movement. The force against the device is sensed, and the cursor movement is made at a rate determined by the transfer function, over the length of time the pressure is applied.
The speed of cursor movement may be proportional to the magnitude of the force applied, or have some other predetermined relationship, as defined by the device's transfer function. For instance, the TrackPoint II device is implemented as having a sigmoid transfer function, including a "dead zone" in which very small forces are ignored, and a series of regions in the input parameter domain, where, in each region, the cursor movement is a piecewise linear function of the input parameter. The piecesise linear segments approximate the sigmoid shape.
Mice, joysticks, and TrackPoint II devices have in common the fact that cursor movement is related to an input parameter whose value is determined by user manipulation. In order to use one of these user interface devices effectively and comfortably, the user must develop a hand-eye coordination to efficiently move the cursor where he or she wants it to go. Whether this coordination will be comfortable for the user depends greatly on both the intrinsic feel of the interface device, i.e., the nature of the user manipulation which produces the input parameter, and the particular transfer function which translates, or maps, the input parameter to actual cursor movement.
Accordingly, one of the fundamental problems in the ergonomics of GUIs is the problem of just how to map the input parameter into cursor movement. A good solution to this problem would facilitate such hand-eye coordination, i.e., provide a "good user feel". The terms "transfer function," "mapping," and "dynamic response" are used to denote the means by which the input parameter is translated into cursor movement. On the other hand, a poor solution to the problem makes use of the interface difficult for the user. If hand-eye coordination is difficult for the user, many annoying manifestations, such as minor movements of the cursor to locate the cursor precisely on the desired location, result.
One way to translate or map the input parameter into cursor movement is to have a simple instantaneous, linear relationship. That is, cursor movement or speed is proportional or otherwise related, at any given point in time, to the magnitude of the input parameter at that point in time.
However, this transfer function has not necessarily provided the best possible user feel. The issue of user feel is particularly important around transients, i.e., where the cursor is just beginning to move or is just stopping. A linear transfer function has a user feel drawback which might be described as "inertia." Inertia is the feeling that a cursor just beginning motion is sluggish, or that a moving cursor will not stop responsively enough, so that it will tend to overshoot the desired destination on the display screen. Therefore, other types of transfer functions have been considered in order to improve user feel or hand-eye coordination by dealing with transients.
For instance, in co-pending U.S. patent application No. 07/917,091, filed Sep. 25, 1992 as a U.S. National Stage application under the Patent Cooperation Treaty, based on PCT International Application PCT/US90/06830, filed Nov. 29, 1990, and published as WO92/09982, there is a teaching of a cursor control system in which a parabolic-sigmoid transfer function is used. That is, if the force input parameter is near the upper end of its range, the cursor velocity output reaches a plateau value, i.e., a value which stays substantially constant as the input force parameter varies in the vicinity of its upper limit. As a result, a tendency of the cursor to overshoot the desired destination because of excessive speed is reduced. It will be seen, however, that while the transfer function given in the '091 application is nonlinear, it nevertheless produces a cursor velocity based solely on the simultaneous, instantaneous value of the input force parameter.
Another example of a conventional transfer function is given in Levine, U.S. Pat. No. 4,386,346, "Cursor Controller". There is described a controller intended to decrease the tendency for cursor movement to overshoot the intended target. Levine proposes to reduce the tendency to overshoot by compensating for the user's reaction time. This goal is accomplished by providing a control circuit which generates a correction signal having a value related to the speed of cursor movement and to the user's reaction time. Thus, when the user ceases moving the cursor, the correction signal is of the right magnitude to compensate for the amount of overshoot resulting from the user's reaction time at the speed at which the cursor was moving.
The user's reaction time is established, initially, by using a table of correction values based on an average user reaction time. Later, the numbers in the table are changed to more accurately reflect the reaction time of the individual user (column 4, lines 30-33).
In operation, an assumption is made that the user will overshoot the desired cursor destination by a distance related to the reaction time. An overshoot voltage signal is calculated based on the reaction time. A correction voltage signal, equal to the overshoot voltage signal, is then calculated and applied to the cursor to move it back from the position reached by overshooting to the intended destination.
Since the overshoot correction is applied when there has been a change in the user's manipulation of the input device, indicating that the user wants to stop the cursor, it may be said that the operation of the Levine transfer function depends both on the instantaneous state of the user's input (i.e., the dropoff of the input toward zero), and on the user's input which has occurred in the immediate past (i.e., the input during the interval where the user is seeking to move the cursor toward the desired destination).
Yet another approach is given in Felsenstein, U.S. Pat. No. 5,012,231, "Method and Apparatus for Cursor Motion Having Variable Response." Felsenstein takes a more sophisticated approach to dealing with transients. Felsenstein begins by observing that the transfer function, or "dynamic response," should be "different for slowing actions than it is for speeding actions" (column 2, lines 31-32). It acknowledges the use of a "quickening" circuit for smoothing operation at a point of transition (column 2, lines 15-18), and provides a circuit, whose behavior is described starting at column 5, line 57, responsive to displacements of a joystick.
The Felsenstein circuit is reproduced in FIG. 1 of the present patent application, as a showing of prior art. The reference numbers which appear in this drawing, as it appears in the Felsenstein patent, have been left intact. However, the full discussion of the illustrated components, referenced by number, has been omitted. The reader of this patent application is directed to the Felsenstein patent itself for that discussion. The comments on FIG. 1 which follow will be limited to certain individual points relating to the illustrated circuit.
If the joystick is displaced stepwise from its quiescent (resting) position, i.e., to begin moving the cursor at a given velocity, the Felsenstein circuit operates to create an exponential function, which causes the cursor to begin moving slowly, and then asymptotically to approach the target velocity. That exponential function is given by the following equation: ##EQU1## In this equation, the values are those associated with various components of the circuit of FIG. 1. That is, C is the value of capacitors 40 and 42, the voltages are those whose subscripts match the circuit junctions likewise numbered, and the resistance values are the resistances of analog transmission gates likewise numbered. Note, by the way, that a detailed analysis of Felsenstein's circuitry demonstrates that the exponent of the Euler constant e in the equation as it appears in the Felsenstein patent is missing a minus sign which it should have. The equation has been quoted above as it appears in Felsenstein, including this error.
Similarly, when the joystick displacement is removed, the cursor velocity decreases to zero according to an exponential function having a time constant different from that of the former exponential function. Thus, in effect, Felsenstein's transfer function acts as a low pass filter, and behaves even more sluggishly than other conventional systems. Felsenstein asserts, at column 6, lines 6-9, that this behavior is "more kinaesthetically pleasing to an operator" than a conventional transfer function.
It will be seen, then, that around the time of a transition in value for the input force parameter, the Felsenstein system produces a cursor velocity value which depends on both the prior and the present input parameter values, since the voltage V.sub.58 is "exponentiating" from the one to the other.
Additionally, note that Felsenstein differentiates the joystick signal, using a differentiator 22 in FIG. 1. However, this differentiated signal is not used directly as part of the input parameter to be applied to the transfer function to obtain the cursor movement signal. Rather, the differentiated signal is applied to a discriminator circuit 26, whose comparators 28 and 30 drive inputs of a latch 32, based on the polarity of the differentiated signal. That is, the high-true and low-true outputs (34 and 36, respectively) of the latch 32 respectively indicate whether the signal is increasing or decreasing. In column 4, line 58, through column 5, line 4, there is a description of the circuitry used for switching the network of analog transmission gates (ATGs) and the capacitors 40 and 42. The switching is used to select between two different levels of sluggishness.
None of these prior art teachings have satisfactorily solved the inertia problem described above. While Levine attempts to deal with overshoot, it leaves unanswered the problem of sluggish initiation of movement. Moreover, the Levine technique for producing a compensating cursor movement to make up for the overshoot is rather simple-minded, in that it assumes that the user's reaction time begins when the cursor reaches the destination. If the user becomes more adept at using the interface device and begins to anticipate, the overshoot will be smaller, but the compensation will be the same. Thus, the compensation will, in effect, cause an undershoot of the intended destination.
Felsenstein in fact increases the inertia problem by causing the transfer function to be even less responsive to user input than conventional linear response transfer functions. With all due respect to Felsenstein's kinaesthetic sensibilities, it is submitted that sluggishness in the dynamic response of a GUI cursor moving and pointing apparatus and method is a problem which remains to be solved.